divide and conquer matrix multiplication